El caché fragmentado se usa para dividir una página en partes y cachearlas independientemente para así poder reutilizarla en diferentes partes, por ejemplo si se trata de un módulo del sidebar que va en distintas páginas, se puede cachear independientemente y utilizarlo en cada uno de ellas.
La página que referencio explica muy bien el concepto de cache fragmentado y a su vez ofrece una librería que facilita su uso de este tipo de cache.
if (!FragmentCache::beginCache('all_available_products')) {
echo "content to be cached...";
FragmentCache::endCache();
}
PHP Obfuscator es una aplicación para Windows que permite ofuscar el código PHP de tus aplicaciones. ¿Para qué nos puede ser útil? para vender una aplicación a un cliente y que éste no realice las modificaciones que pueda solicitarnos a nosotros ya que el código será ilegible. PHP Obfuscator
Algo que nos pasa a los que aprendemos PHP por nuestra cuenta es coger fallos por malas costumbres, otras veces la gente tiene fallos por falta de conocimiento. Aquà os paso resumida una lista de los errores más comunes que se comenten a la hora de programar en PHP.
No escapar lo que nos llegar por parámetro: para evitar el cross-site scripting es necesario escapar las posibles entradas HTML que nos lleguen por parámetro. Si al introducir el usuario nos metieran:
<script>...$lt/script$gt;
serÃa necesario escapar las entidades HTML para evitar ataques. Para ello se usarÃa el siguiente código:
htmlspecialchars($_GET['username'], ENT_QUOTES)
No escapar las entradas de consultas SQL: para evitar SQL-injections es necesario escapar antes el contenido de las entradas que pasamos a nuestras consultas SQL. Por ejemplo, tendrÃamos que crearnos una función que escapara las comillas simples.
Uso incorrecto de las funciones para la cabecera HTTP (header(), session_start() y setcookie()): muchas veces cuando desarrollanos nos encontramos con un mensaje de error que dice que ya se ha mandado la cabecera y que no se puede añadir más información. Esto es debido a que las funciones de cabecera (header(), session_start(), setcookie()) se tienen que usar al principio del script, antes de mandar nada a la salida.
No controlar lo que añades mediante require o include: se trata de no comenter el error de incluir un fichero cuya ruta se pasa por parámetro, ya que aunque nosotros seamos quienes pongan ese valor en el parámetro, puede llegar alguien y cambiar la ruta y pasar otro fichero que no sea de fiar.
Errores de sintaxis: bueno, aquà el autor del artÃculo, se ha quedado un tanto agusto. Todo el mundo comete errores de sintaxis cuando programa, ya sea en PHP, C, .NET o cualquier otro lenguaje de programación. Yo si que comentaria un error que suelo cometer, que es el escribir mal una variable y que el script no falle (como ocurrirÃa en Java), pero que se obtengan datos incorrectos.
No usar la orientación a objetos: desde la versión 4 los objetos se admiten en PHP, en PHP5 se mejoró su utilización. Debemos aprovecharnos de esas posibilidades.
No usar frameworks: no reinventemos la rueda, si ya hay un framework que nos gestiona la base de datos, los errores y otras cosas, no pierdas el tiempo en implementarlo tu mismo.
Desconocer funcionalidades: PHP dispone de muchas funcionalidades en su core o en su librerÃas, cuantas más funcionalidades conozcas, menos tiempo perderas en el desarrollo.
Usar versiones antiguas de PHP: tiene dos inconvenientes, que desaprovechas nuevas funcionalidades y corres el peligro de no tener todos los bugs parcheados.
Doble escapado de comillas: es posible encontrar en código PHP algo asÃ: \’ o \”. Esto suele ocurrir cuando se desarrolla con magic_quotes off y se instala en un servidor con magic_quotes on.
MODx es lo que se llamarÃa un CMF (Content Management Framework), una mezcla entre CMS (Content Management System)y framework. Realizado en PHP, permite realizar aplicaciones de forma sencilla, validando código XHTML, con layouts CSS y con utilización de Ajax.
A parte de tener en cuenta los estándares web y tratar con Ajax (gracias a script.aculo.us), hay que añadir que en los navegadores más comunes, dispone de un instalador paso a paso, hace uso de FCKeditor, diferencia entre las sesiones de usuarios y de gestores de la aplicación, y exporta a formatos como PDF o Word, entre otras cosas. MODx
Gracias Bentejuy por el aviso.
Ahora viene la parte más complicada, y digo complicada porque sinceramente he tenido que mirar el código porque algo me fallaba cuando seguía lo que decía la documentación.
El nombre del fichero JSON tiene el siguiente formato [dominio de traducción]-[idioma]-[handler del fichero].json, total nada.
Dominio será el que usemos para traducir, en el ejemplo sería mi-plugin:
__( 'Hola que tal', 'mi-plugin' );
Idioma es el código del idioma, en este caso es_ES
Y por último el handler del fichero es el primer parámetro que usamos en wp_enqueue_script
Lo podemos ver todo en un ejemplo final:
wp_enqueue_script(
'mi-plugin-handler', // El handler mencionado anteriormente
$blocks_script, // Nuestro path
[
'wp-i18n', // De referenciar al menos a wp-i18n
],
);
wp_set_script_translations( 'mi-plugin-handler, 'mi-plugin', plugin_dir_path( __FILE__ ) . 'languages' );
Algo que se usa mucho en jQuery es el method chaining, encadenar la llamada de métodos en una misma sentencia. Para realizar esto en PHP lo que hay que hacer es devolver $this en cada método:
class obj {
function accion1() {
// Lo que sea
return $this;
}
function accion2() {
// Lo que sea
return $this;
}
}
$o = new obj();
$o->accion1()->accion2();
Ahora veo un ejemplo en el que un ataque puede evitar estas funciones cuando se crea la página con HTML no estándar. Tenemos el tÃpico ejemplo de un texto que se introduce por un formulario y se presenta como un enlace.